2024年11月10日 星期日

[筆記][GS]透過GoogleAppsScript(網頁應用程式)寫入檔案

需求: 
  • 類似表單訊息收集或是Log蒐集。 
  • 系統會在指定目錄下依照日期建立檔案(每天一個檔)
  • 也可以指定要產生哪種類型的檔案。(csv excel等)

 AI給的範例:

2024年9月21日 星期六

markmap 範例

--- title: markmap markmap: colorFreezeLevel: 2 --- ## Links - [Website](https://markmap.js.org/) - [GitHub](https://github.com/gera2ld/markmap) ## Related Projects - [coc-markmap](https://github.com/gera2ld/coc-markmap) for Neovim - [markmap-vscode](https://marketplace.visualstudio.com/items?itemName=gera2ld.markmap-vscode) for VSCode - [eaf-markmap](https://github.com/emacs-eaf/eaf-markmap) for Emacs ## Features Note that if blocks and lists appear at the same level, the lists will be ignored. ### Lists - **strong** ~~del~~ *italic* ==highlight== - `inline code` - [x] checkbox - Katex: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$ - [More Katex Examples](#?d=gist:af76a4c245b302206b16aec503dbe07b:katex.md) - Now we can wrap very very very very long text based on `maxWidth` option ### Blocks ```js console.log('hello, JavaScript') ``` | Products | Price | |-|-| | Apple | 4 | | Banana | 2 | ![](/favicon.png)

2024年9月19日 星期四

[markdown]測試

markdown ## hello world ## 第一行寫 markdown > 1. markdown > 2. ## hello world ##

[筆記][Markdown]在Blogger使用Markdown

 參考:

目前本blogger簡易作法
引用:
<script
 src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.6.4/showdown.min.js">
</script>  

<script>  
 var converter = new showdown.Converter();  
 var posts = document.querySelectorAll(".post-body,.snippet-item");
 Array.prototype.forEach.call(posts, function(el, i){  
  if(el.innerHTML.indexOf("markdown") <= 1){ 
   el.innerHTML = converter.makeHtml(el.innerHTML.replace("markdown",""));  
  }});  
 var pres = document.querySelectorAll("pre"); 
 Array.prototype.forEach.call(pres,  function(el, i){ 
  el.classList.add("prettyprint");  
 });  
</script>  

<script  
 src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst">
</script>

之後在blogger側欄加入一個javascrpit的語法區塊。(放其他區塊也可以,放側欄 是因為這個版型每頁都有側欄。

 

2024年9月13日 星期五

[筆記]Chrome快取,網頁登入後顯示舊資料

 問題:asp.net MVC 網站登入登出後,畫面維持在舊畫面。
             原本要顯示使用者資訊的區塊還維持在未登入。

  • 到開發人員工具>網路,看頁面上面的要求標頭顯示以下畫面。
  • 停用快取才可以顯示資訊。(才正常)

暫時解法:cache-control改no-store

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult Index(){}




其它問題類:參考



2024年9月2日 星期一

[筆記]chrome bookmark存放位置

  •  C:\Users\使用者\AppData\Local\Google\Chrome\User Data\Default\Bookmark
    • 檔案沒副檔名
    • bookmark.bak:異動書籤會有一個bak備份檔

2024年8月20日 星期二

[筆記][Word][頁首頁尾]封面內文頁碼設定

不常操作就會忘記小細節,這邊做個筆記。
  • 需求:封面不編號+需要編號的內文章節。
  • 封面先分節(下一頁),簡單的分成兩節。
  • 配置大約如下圖。

  • 封面頁:頁碼設定。✅第一頁不同。就不會顯示編號。
  • 內文頁:
    因為是屬於另外一節,屬於獨立的頁碼設定。
    [❌]第一頁不同,第一頁就要開始顯示號碼,所以這邊取消勾選就會顯示頁碼。
  • 頁碼編號都從1開始編,不接續前頁。





2024年8月15日 星期四

[筆記][AI助理][OpenAI Assistant]後臺已建立助理,如何透過程式使用(建立對話)?

問題: 後臺已建立助理,如何透過程式使用(建立對話)?

參考:

  • OpenAI Assistants API
  • OpenAI Assistants API 初體驗
  • C#套件:Betalgo.OpenAI
  • 幾個專有名詞:Assistant、Thread、Message、Run 、File。
    • overview上的翻譯:
      • Assistant:使用 OpenAI模型和呼叫工具的專用 AI
      • Thread:執行緒,助理和使用者之間的對話會話。線程存儲訊息並自動處理截斷以使內容適合模型的上下文。
      • Message:由助理或使用者建立的訊息。訊息可以包括文字、圖像和其他文件。訊息以列表形式儲存在線程上。
      • Run:在執行緒上呼叫助理。助理使用其配置和執行緒的消息透過呼叫模型和工具來執行任務。作為運行的一部分,助理將訊息附加到執行緒。
      • Run Step:助理在運行過程中所採取的步驟的詳細清單。助理可以在運行期間呼叫工具或建立訊息。檢查運行步驟可以讓您反思助理如何獲得最終結果。
      • File:上傳附件給助理。
    • Assistant:就是助理。可以透過GetAssistanList相關方法去取得助理清單。
    • Thread:使用者使用時,會建立一組新的Thread(配給ThreadId),已完成相關對話串。(下次使用也可以透過ThreadId繼續對話,thread如果沒有刪除,大約存在60天。)
    • Message:使用者提問與AI回應。透過傳入thtreadid,去建立對話。
    • Run:請助理處理使用者提問,回應的訊息會在messageList中。

2024年7月18日 星期四

[筆記][Teams]Teams IncomingWebhook改用Workflow(webhook)

Teams 上收到已下訊息:(2024/7/19看到)

附錄:以下設定。


拿到發送的網址,即可配合程式呼叫。





2024年7月11日 星期四

[筆記][C#]相對網址正式測式區轉換議題。


string Site="https://web.mydomain.com/demo/index.html";

string Site2="https://www.demo.com.tw/index.html";

string relateUrl = "Referee/Index.aspx?rid=123";//新網址

Uri siteUrl = new Uri(Site);//模擬Reuest.Url

Uri siteUrl2 = new Uri(Site2);

var baseUri = siteUrl;

var newUri = new Uri(baseUri,relateUrl); //透過基礎網址跟relate網址去產生正式網址

var baseUri2 = siteUrl2;

var newUri2 = new Uri(baseUri2,relateUrl);

Console.WriteLine(newUri.AbsoluteUri);

Console.WriteLine(newUri2.AbsoluteUri);

 

2024年6月26日 星期三

[筆記]幾個建議的修正polyfill、bootcss、bootcdn、staticfile

參考:

收到google通知:Action Required: Security issue affecting your landing pages
搜尋並查詢一下相關建議:
 - `polyfill.io`
   - `bootcss.com`
   - `bootcdn.net`
   - `staticfile.org`
有引用這些網站相關的javscript 等檔案,建議移除或置換。

2024年6月18日 星期二

[筆記]javascript剪貼簿

https://jsfiddle.net/boc58L0j/3/
https://jsfiddle.net/boc58L0j/9/

<table>

<tr>

  <td>文字一</td>

  <td><input type="button" value="複製" onclick="copy('文字一');"/>

  </td>

</tr>

<tr>

  <td>文字二</td>

  <td><input type="button" value="複製" onclick="copy('文字二');"/>

  </td>

</tr>

</table>

function copy(strInpt) {

  //新增

    var textArea = document.createElement("textarea");

    textArea.value = strInpt;

    document.body.appendChild(textArea);

    textArea.select();

    document.execCommand("Copy");

    textArea.remove();  

    // Alert the copied text

    alert("Copied the text: " + strInpt);

}

function copy(strInpt) {

  //新增

    var copyText = document.createElement("textarea");

    copyText.value = strInpt;

    document.body.appendChild(copyText);

    copyText.select();    

  //copyText.setSelectionRange(0, 99999); // For mobile devices

    // Copy the text inside the text field

  navigator.clipboard.writeText(copyText.value);

    copyText.remove();  

    // Alert the copied text

    alert("Copied the text: " + strInpt);

}

2024年6月9日 星期日

[筆記]Teams建立Chanel取得通知鏈結

  • 2024.06.09版本。
  • 管理的位置藏的很深,這邊作個小筆記。


編輯:點擊後channel右邊側欄會出現【Manage Channel】。


Connectors>找到Edit

搜尋Incomming Webhook > Configure


新增一組Webhook通知,輸入名稱,設定圖示後確定。


Create完成後,畫面會顯示webhook link。



若有需要新增第二組webhook或是管理,請選擇Configured,會顯示之前建立的資料。

2024年5月28日 星期二

[筆記][HtmlToPDF]iText轉PDF

寫在前面

  • 參考:
    • iTextSharp: https://itextpdf.com/products/itextsharp
    • https://www.nuget.org/packages/iTextSharp

2024年3月4日 星期一

[筆記]RDLC TO PDF

透過reportview轉byte[]
byte[] bytes = reportViewer.LocalReport.Render( "PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings); 最後輸出成PDF
  • 參考:
    • https://stackoverflow.com/questions/2684221/creating-a-pdf-from-a-rdlc-report-in-the-background