ankifyh 发表于 2018-6-5 02:52:02

非常感谢,试一下

ankifyh 发表于 2018-6-5 05:26:29

非常感谢,但是导入太慢了,提个建议,希望利用anki浏览器功能的辅助把该牌组按照每1000个词频大小导出为20个apkg文件。苦于手头没有电脑,不然我即刻就做了。甚是感谢。

ankifyh 发表于 2018-6-5 06:54:51

你所发布的代码包含很多乱码,请问能单独复制一份TXT给我吗?十分感谢!!!在下邮箱2584570593@qq.com

hhuang 发表于 2018-6-5 07:51:00

ankifyh 发表于 2018-6-5 06:54
你所发布的代码包含很多乱码,请问能单独复制一份TXT给我吗?十分感谢!!!在下邮箱 ...

Front Template:
<div id="front">

<div class="headbar">{{Deck}}</div>
<div id="word">
    {{单词}}
    <span id="rank">&nbsp;&nbsp;&nbsp;&nbsp;{{ranking}}&nbsp;&nbsp;&nbsp;&nbsp;</span><span id='example_audios'></span>
</div>
<div class="yongfa">
    {{用法}}
</div>

<div id="back">
    <div class="headbar">有道词典&nbsp;&nbsp;基本释义</div>
    <div class="shiyi_youdao">
      {{shiyi_youdao}}
    </div>

    <div class="headbar">LDOCE6</div>
    <div id="ldoce6">
    {{LDOCE6}}
    </div>

    <script type="text/javascript">
      // format yonfa
      [].forEach.call(document.querySelectorAll('.yongfa'), function (div) {
      div.innerHTML = div.innerHTML
          .replace(/+\)/g, function (symbol) {
            return '<a class="hightlight" style="color:#539007;" >' + symbol + '</a>';
          });
      });

      // play the Ammerican pronouciation
      var amevoice = document.getElementsByClassName("amevoice");
      var anki_modified_code = amevoice.innerHTML;
      //var filename = '_' + anki_modified_code.split(':').split(';').split('_').replace(/"\)/, '');;
      var filename =anki_modified_code.split('ankiplay').split('\");');
      var audio = new Audio(filename);
      audio.play();

      // add audios of the examples
      var examples = document.getElementsByClassName("example");
      var example_audios = "";
      for (var i = 0; i < examples.length; i++) {
          var e = examples.innerHTML;
          var index = i + 1;
          if (e.search('mp3]') == -1) {
            continue;
          }
          example_audios += index + e.split('<img');
//if (i>10) alerta(e.split('<img'));
      }
      var rank = document.getElementById("rank");
      rank.innerHTML += example_audios;

    </script>

Styling:
/*页眉页脚全局样式*/
.headbar {
color: #aaaaaa; /*字体颜色-白色*/
padding: 2px; /*四周留白-5px*/
text-align: center;
font-size: 10px; /*字体大小-12px*/
background: #365899;
}

body {
background: #c7edcc;
}

#word {
font-size: 36px;
font-weight: bold;
padding: 5px 20px;
}

#rank, #example_audios {
font-size: 12px;
}

.yongfa {
font-style: italic;
display: block;
color: blue;
padding: 5px 20px;
font-size: 14px;
line-height: 1.2;
}

.shiyi_youdao {
font-style: normal;
font-size: 18px;
line-height: 1.2;
padding: 5px 20px;
}

.hightlight {
font-style: italic;
font-weight: bold;
}

/*
._LDOCE6 {
height: 480px;
overflow-y: auto;
font-size: 14px;
padding: 0px 10px;
}
*/

#ldoce6 {
overflow-y: auto;
font-size: 14px;
padding-left: 10px;
}


#back {
display: none;
}

/*
.cixing {
display:inline-block;
text-align:right;
width:40px;
}
*/

Back Template:
<!-- 背面区块 -->
{{FrontSide}}
<!-- 页眉区块 -->
<script type="text/javascript">

// format shiyi_youdao
var colorMap = {
    'n.': '#e3412f',
    'a.': '#f8b002',
    'adj.': '#f8b002',
    'ad.': '#684b9d',
    'adv.': '#684b9d',
    'v.': '#539007',
    'vi.': '#539007',
    'vt.': '#539007',
    'prep.': '#04B7C9',
    'conj.': '#04B7C9',
    'pron.': '#04B7C9',
    'art.': '#04B7C9',
    'num.': '#04B7C9',
    'int.': '#04B7C9',
    'interj.': '#04B7C9',
    'modal.': '#04B7C9',
    'aux.': '#04B7C9',
    'pl.': '#D111D3',
    'abbr.': '#D111D3',
};
[].forEach.call(document.querySelectorAll('.shiyi_youdao'), function (div) {
    div.innerHTML = div.innerHTML
      .replace(/\b+\./g, function (symbol) {
      if (colorMap) {
          return '<span class="cixing"><a class="hightlight" style="color:'
            + colorMap + ';" >' + symbol + '</a></span>';
      } else {
          return symbol;
      }
      });
});

var back_div = document.getElementById("back");
back_div.style.display = "block";

window.addEventListener("resize", update_ldoce6_height, false);
update_ldoce6_height();

function update_ldoce6_height() {
    var ldoce6_div = document.getElementById("ldoce6");
    var window_height = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight;
    var preferred_height = window_height - ldoce6_div.offsetTop - 20;
    ldoce6_div.style.height = preferred_height + "px";
}

// test to show the file name
//document.getElementById("rank").innerHTML="top: " + ldoce6_div.offsetTop + "<br/>height: " + back_div.offsetHeight + "<br/>window height: " + height;

</script>
<script src="_entry.js"></script>

ankifyh 发表于 2018-6-5 16:14:23

照抄了代码还是没实现加上按钮播放例句的效果。不知道是哪里搞错了,不过还是要谢谢您的回复

ankifyh 发表于 2018-6-5 16:53:16

本帖最后由 ankifyh 于 2018-6-5 16:54 编辑

我想可能是这个标签里缺点什么:<span id='example_audios'></span>

hhuang 发表于 2018-6-5 17:14:15

本帖最后由 hhuang 于 2018-6-5 17:19 编辑

ankifyh 发表于 2018-6-5 16:53
我想可能是这个标签里缺点什么:

代码应该是OK的,我直接从我正在用的card里copy出来的。
<span id='example_audios'></span>,这一块代码是没有用的,我原来想放在单独的span里(ID为example_audios),但后来我直接把那些按钮放到rank那个span里了。
如果这个单词没有example,或者有example但example中没有mp3,那就没有按钮。其它情况都应该有按钮的。
你可以alert(examples)看看,自己调试一下,我就是这么看的,了解anki生成的页面的源代码,这样就容易改了。

按钮部分看这里:
      // add audios of the examples
      var examples = document.getElementsByClassName("example");
      var example_audios = "";
      for (var i = 0; i < examples.length; i++) {
          var e = examples.innerHTML;
          var index = i + 1;
          if (e.search('mp3]') == -1) {
            continue;
          }
          example_audios += index + e.split('<img');
//if (i>10) alerta(e.split('<img'));
      }
      var rank = document.getElementById("rank");
      rank.innerHTML += example_audios;

ankifyh 发表于 2018-6-5 18:49:56

我仔细核对了,还是没搞定,您在掌上百科上发布的代码我无法直接拷贝,能不能以文本的形式发一下,我直接复制粘贴试一试。

ankifyh 发表于 2018-6-5 18:51:15

麻烦您了,实在不好意思,浪费了你不少时间

hhuang 发表于 2018-6-5 20:10:48

ankifyh 发表于 2018-6-5 18:49
我仔细核对了,还是没搞定,您在掌上百科上发布的代码我无法直接拷贝,能不能以文本的形式发一下,我直接复 ...

====Front Template====
<div id="front">

<div class="headbar">{{Deck}}</div>
<div id="word">
    {{单词}}
    <span id="rank">&nbsp;&nbsp;&nbsp;&nbsp;{{ranking}}&nbsp;&nbsp;&nbsp;&nbsp;</span><span id='example_audios'></span>
</div>
<div class="yongfa">
    {{用法}}
</div>

<div id="back">
    <div class="headbar">有道词典&nbsp;&nbsp;基本释义</div>
    <div class="shiyi_youdao">
      {{shiyi_youdao}}
    </div>

    <div class="headbar">LDOCE6</div>
    <div id="ldoce6">
    {{LDOCE6}}
    </div>

    <script type="text/javascript">
      // format yonfa
      [].forEach.call(document.querySelectorAll('.yongfa'), function (div) {
      div.innerHTML = div.innerHTML
          .replace(/+\)/g, function (symbol) {
            return '<a class="hightlight" style="color:#539007;" >' + symbol + '</a>';
          });
      });

      // play the Ammerican pronouciation
      var amevoice = document.getElementsByClassName("amevoice");
      var anki_modified_code = amevoice.innerHTML;
      //var filename = '_' + anki_modified_code.split(':').split(';').split('_').replace(/"\)/, '');;
      var filename =anki_modified_code.split('ankiplay').split('\");');
      var audio = new Audio(filename);
      audio.play();

      // add audios of the examples
      var examples = document.getElementsByClassName("example");
      var example_audios = "";
      for (var i = 0; i < examples.length; i++) {
          var e = examples.innerHTML;
          var index = i + 1;
          if (e.search('mp3]') == -1) {
            continue;
          }
          example_audios += index + e.split('<img');
//if (i>10) alerta(e.split('<img'));
      }
      var rank = document.getElementById("rank");
      rank.innerHTML += example_audios;

    </script>
====

====Styling====
/*页眉页脚全局样式*/
.headbar {
color: #aaaaaa; /*字体颜色-白色*/
padding: 2px; /*四周留白-5px*/
text-align: center;
font-size: 10px; /*字体大小-12px*/
background: #365899;
}

body {
background: #c7edcc;
}

#word {
font-size: 36px;
font-weight: bold;
padding: 5px 20px;
}

#rank, #example_audios {
font-size: 12px;
}

.yongfa {
font-style: italic;
display: block;
color: blue;
padding: 5px 20px;
font-size: 14px;
line-height: 1.2;
}

.shiyi_youdao {
font-style: normal;
font-size: 18px;
line-height: 1.2;
padding: 5px 20px;
}

.hightlight {
font-style: italic;
font-weight: bold;
}

/*
._LDOCE6 {
height: 480px;
overflow-y: auto;
font-size: 14px;
padding: 0px 10px;
}
*/

#ldoce6 {
overflow-y: auto;
font-size: 14px;
padding-left: 10px;
}


#back {
display: none;
}

/*
.cixing {
display:inline-block;
text-align:right;
width:40px;
}
*/
====

====Back Template====
<!-- 背面区块 -->
{{FrontSide}}
<!-- 页眉区块 -->
<script type="text/javascript">

// format shiyi_youdao
var colorMap = {
    'n.': '#e3412f',
    'a.': '#f8b002',
    'adj.': '#f8b002',
    'ad.': '#684b9d',
    'adv.': '#684b9d',
    'v.': '#539007',
    'vi.': '#539007',
    'vt.': '#539007',
    'prep.': '#04B7C9',
    'conj.': '#04B7C9',
    'pron.': '#04B7C9',
    'art.': '#04B7C9',
    'num.': '#04B7C9',
    'int.': '#04B7C9',
    'interj.': '#04B7C9',
    'modal.': '#04B7C9',
    'aux.': '#04B7C9',
    'pl.': '#D111D3',
    'abbr.': '#D111D3',
};
[].forEach.call(document.querySelectorAll('.shiyi_youdao'), function (div) {
    div.innerHTML = div.innerHTML
      .replace(/\b+\./g, function (symbol) {
      if (colorMap) {
          return '<span class="cixing"><a class="hightlight" style="color:'
            + colorMap + ';" >' + symbol + '</a></span>';
      } else {
          return symbol;
      }
      });
});

var back_div = document.getElementById("back");
back_div.style.display = "block";

window.addEventListener("resize", update_ldoce6_height, false);
update_ldoce6_height();

function update_ldoce6_height() {
    var ldoce6_div = document.getElementById("ldoce6");
    var window_height = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight;
    var preferred_height = window_height - ldoce6_div.offsetTop - 20;
    ldoce6_div.style.height = preferred_height + "px";
}

// test to show the file name
//document.getElementById("rank").innerHTML="top: " + ldoce6_div.offsetTop + "<br/>height: " + back_div.offsetHeight + "<br/>window height: " + height;

</script>
<script src="_entry.js"></script>
====

ankifyh 发表于 2018-6-5 20:36:08

我复制时的实际效果是这样的,如图所示,我也不知道要怎样才能不选中后面的文字。我不太懂js,只是个小白,所以我就一条一条地复制粘贴。逐行核对,还是气死自己了。所以请见谅。

tomlintong 发表于 2018-6-5 20:40:39

谢谢楼主宝贵的意见

hhuang 发表于 2018-6-5 20:50:16

ankifyh 发表于 2018-6-5 20:36
我复制时的实际效果是这样的,如图所示,我也不知道要怎样才能不选中后面的文字。我不太懂js,只是个小白, ...

还真的是够白的啊,哈哈
这个是论坛搞得鬼,你拷贝下来自己编辑一下就行了啊。
我在共享的文件夹里放了个txt文件,你去取一下吧。

ankifyh 发表于 2018-6-5 22:00:18

hhuang 发表于 2018-6-5 20:50
还真的是够白的啊,哈哈
这个是论坛搞得鬼,你拷贝下来自己编辑一下就行了啊。
我在共享的文件夹里放了个 ...

thank you!????多谢合作

ankifyh 发表于 2018-6-5 22:30:49

也许是因为系统不同的原因,Windows系统和安卓都没能实现你的那个正面卡片一排按钮。或许是系统不支持该js代码。注意到你使用的是macos。

ankifyh 发表于 2018-6-5 22:36:39

葫,我还是不要折腾了,这样下去只是更多地浪费时间,还不如老老实实地多刷卡片呢

cgxcgx 发表于 2018-6-5 23:04:30

语音库需要另外下载吗?

hhuang 发表于 2018-6-6 09:58:33

ankifyh 发表于 2018-6-5 22:36
葫,我还是不要折腾了,这样下去只是更多地浪费时间,还不如老老实实地多刷卡片呢 ...

我重新导出并上传了这个库,你再下载一下,应该不用做任何修改就OK了。你再试试。
我也只能帮你这么多了,{:4_93:}

禁城在 发表于 2018-6-6 21:01:29

感谢楼主分享。。。。

ankifyh 发表于 2018-6-7 08:18:05


重新下载并导入了 结果还是一样的,所以这应该是不同操作系统对Java脚本的支持度不一样造成的。

Dongyu 发表于 2018-6-9 16:35:25

确实漂亮,但是在安卓手机上看,字体有点小!谢谢分享!

kjcqs 发表于 2018-6-10 11:47:58

感谢分享!
这个版本的朗文很精悍啊,原版论坛上有吗?

darrenzhuo 发表于 2018-6-10 13:08:50

貌似很好的东西,谢谢真的非常不错,是不是很大的一个文件?

含章Quinn 发表于 2018-6-11 10:54:04

太棒啦,谢谢楼主!!!感恩!!LDOCE5

bsqby 发表于 2018-6-12 07:42:27

谢谢
页: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15
查看完整版本: 更新带音频(单词+例句),LDOCE6,美国当代英语语料库2...